Reveal简单使用 | iOS逆向
【Reveal】
- UI分析工具,很多时候,我们看到一个好看的效果,却不知道其实现的时候,可以使用Reveal一通分析!!
【自己的APP】
首先需要准备的是Reveal软件,这个软件是收费的有30天的免费试用期,不过网上破解版的还是挺多的,就不放链接了
安装完成打开就是上面的图片,其中是没有app的,因为我们还没有打开app,一步步来就好
1.打开自己的Xcode
2.别急着运行,需要先配置,
2.1 在打断点的位置添加Symbolic Breakpoint
2.2 在Symbol里面输入UIApplicationMain
2.3 点击Action按钮 变成Debugger Command 状态
2.4 在Action里面输入 expr (Class)NSClassFromString(@"IBARevealLoader") == nil ? (void *)dlopen("/Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/RevealServer.framework/RevealServer", 0x2) : ((void*)0)
2.5 勾选 Automatically continue after evaluating actions.
完成之后效果图如下
3.这个时候运行项目了,注意使用模拟器,且reveal需要打开
4.运行之后会在reveal界面上看到如下图,比原来的多出来图标,点击打开即可
【分析其他AppUI】
分析其它AppStore下载的AppUI需要准备:1.一台越狱的手机,2.安装SSH ,3.安装cycript,4.安装reveal loader
解释一下:1.越狱手机权限巨大,才得以让我们进入其他app,2.ssh 是为了我们在mac端使用命令连接iphone ,3.cycript获取app的bundleId,4.配合reveal
注意:
1.手机和mac需要在同一局域网,即连接同一wifi,
2.文件拷贝时候的ip地址,就是iphone连接wifi的ip,
3.ssh等配置就不在这里叙述,网上太多了,直接搜索就行
废话不多说,直接开始(查看AppStore的UI)
打开终端使用命令 scp /Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/Reveal.framework root@192.168.0.X:/System/Library/Frameworks (注: /Applications***/Reveal.framework 这个是我们安装的Reveal内的framework文件 可以对程序查看包内容里面看到,后面的IP地址即iphone连接wifi之后的地址)
第二条 :scp /Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/libReveal.dylib root@192.168.0.X:/Library/MobileSubstrate/DynamicLibraries ,使用这条命令的时候会报错,原因是libReveal.dylib这个库没找到,因为在新版本的Reveal里面是没有这个库的,这个时候需要显示包内容,在包里面的RevealServer.framework里面找到RevealServer,copy出来,重命名为libReveal.dylib,然后修改上面地址为刚刚copy出来的地址,再执行,就可以了
新建一个libReveal.plist文件,输入如下(这里的Bundles是各个APP的 BundleID,com.apple.AppStore是appstore的id)
{Filter = { Bundles = ("com.apple.AppStore"); };
}
4.使用 scp (libReveal.plist位置) root@192.168.0.X:/Library/MobileSubstrate/DynamicLibraries 将libReveal.plist文件丢到手机里面
5.重启手机,打开Reveal,再打开appstore,这样就能看到如下图
这个时候就会有一个问题,既然是根据Bundles里面的ID来的,那我们如何获取其他APP的id呢
【获取其他BundleID】
1.使用ssh进入IPhone :ssh root@192.168.1.X
2.使用cycript的命令 :ps -e |grep /var/mobile* 查看运行的App名字
3.命令: cycript -p Starbucks(注:Starbucks是我找的星巴克的name)
4.命令:[[NSBundle mainBundle] bundleIdentifier] 打印出来的就是对应app的BundleID
5.再进行上述文件操作,就ok了
友情提示 星巴克的id:com.starbuckschina.mystarbucksmoments
最后界面如下
【其他】
都到这一步了,不得不填坑星巴克app分析了,下班再说······